package InnerClass.staticClass;

/**
 * 为什么在 Java 中需要内部类？总结一下主要有以下四点：
 *
 * 1.每个内部类都能独立的继承一个接口的实现，所以无论外部类是否已经继承了某个(接口的)实现，对于内部类都没有影响。内部类使得多继承的解决方案变得完整。
 * 2.方便将存在一定逻辑关系的类组织在一起，又可以对外界隐藏。
 * 3.方便编写事件驱动程序。
 * 4.方便编写线程代码。
 *
 */
public class Outer {

    public Outer() {
    }

    /**
     * 关键字static
     * 1.静态内部类是不需要依赖于外部类的，这点和类的静态成员属性有点类似，
     * 并且它不能使用外部类的非static成员变量或者方法，这点很好理解
     *
     * 2.在没有外部类的对象的情况下，可以创建静态内部类的对象
     */
    static class Inner {

        public Inner() {
        }
    }

    public static void main(String[] args) {
        Inner inner = new Inner();

        Outer.Inner inner1 = new Outer.Inner();
    }
}
